package com.greenold.check.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.greenold.common.annotation.Excel;
import com.greenold.common.core.domain.BaseEntity;

/**
 * 退住对象 checkout
 * 
 * @author ruoyi
 * @date 2025-10-13
 */
public class Checkout extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    @Excel(name = "主键")
    private String id;

    /** 退住编号 */
    @Excel(name = "退住编号")
    private String checkoutNo;

    /** 标题 */
    private String title;

    /** 老人id */
    private String elderId;

    /** 业务id（流程实例） */
    private String businessId;

    /** 姓名 */
    @Excel(name = "姓名")
    private String name;

    /** 身份证号 */
    @Excel(name = "身份证号")
    private String idCardNo;

    /** 联系方式 */
    private String contact;

    /** 入住开始时间 */
    private Date stayStart;

    /** 入住结束时间 */
    private Date stayEnd;

    /** 护理等级 */
    private String careLevel;

    /** 入住床位 */
    @Excel(name = "入住床位")
    private String bedNo;

    /** 签约合同URL */
    @Excel(name = "签约合同URL")
    private String contractUrl;

    /** 合同编号 */
    private String contractNo;

    /** 养老顾问 */
    private String consultant;

    /** 护理员名称 */
    private String caregiverName;

    /** 退住时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "退住时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date checkoutTime;

    /** 退住原因 */
    private String checkoutReason;

    /** 申请人 */
    @Excel(name = "申请人")
    private String applicant;

    /** 申请人id */
    @Excel(name = "申请人id")
    private String applicantId;

    /** 申请人部门编号 */
    private String applicantDept;

    /** 申请时间 */
    private Date applyTime;

    /** 流程状态（0:申请退住 ...） */
    @Excel(name = "流程状态", readConverterExp = "0=:申请退住,.=..")
    private String processStatus;

    /** 状态（1：申请中，2:已完成,3:已关闭） */
    @Excel(name = "状态", readConverterExp = "1=：申请中，2:已完成,3:已关闭")
    private String status;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Date createdAt;

    /** $column.columnComment */
    private Date updatedAt;

    /** 扩展字段1 */
    private String extend1;

    /** 扩展字段2 */
    private String extend2;

    public void setId(String id) 
    {
        this.id = id;
    }

    public String getId() 
    {
        return id;
    }

    public void setCheckoutNo(String checkoutNo) 
    {
        this.checkoutNo = checkoutNo;
    }

    public String getCheckoutNo() 
    {
        return checkoutNo;
    }

    public void setTitle(String title) 
    {
        this.title = title;
    }

    public String getTitle() 
    {
        return title;
    }

    public void setElderId(String elderId) 
    {
        this.elderId = elderId;
    }

    public String getElderId() 
    {
        return elderId;
    }

    public void setBusinessId(String businessId) 
    {
        this.businessId = businessId;
    }

    public String getBusinessId() 
    {
        return businessId;
    }

    public void setName(String name) 
    {
        this.name = name;
    }

    public String getName() 
    {
        return name;
    }

    public void setIdCardNo(String idCardNo) 
    {
        this.idCardNo = idCardNo;
    }

    public String getIdCardNo() 
    {
        return idCardNo;
    }

    public void setContact(String contact) 
    {
        this.contact = contact;
    }

    public String getContact() 
    {
        return contact;
    }

    public void setStayStart(Date stayStart) 
    {
        this.stayStart = stayStart;
    }

    public Date getStayStart() 
    {
        return stayStart;
    }

    public void setStayEnd(Date stayEnd) 
    {
        this.stayEnd = stayEnd;
    }

    public Date getStayEnd() 
    {
        return stayEnd;
    }

    public void setCareLevel(String careLevel) 
    {
        this.careLevel = careLevel;
    }

    public String getCareLevel() 
    {
        return careLevel;
    }

    public void setBedNo(String bedNo) 
    {
        this.bedNo = bedNo;
    }

    public String getBedNo() 
    {
        return bedNo;
    }

    public void setContractUrl(String contractUrl) 
    {
        this.contractUrl = contractUrl;
    }

    public String getContractUrl() 
    {
        return contractUrl;
    }

    public void setContractNo(String contractNo) 
    {
        this.contractNo = contractNo;
    }

    public String getContractNo() 
    {
        return contractNo;
    }

    public void setConsultant(String consultant) 
    {
        this.consultant = consultant;
    }

    public String getConsultant() 
    {
        return consultant;
    }

    public void setCaregiverName(String caregiverName) 
    {
        this.caregiverName = caregiverName;
    }

    public String getCaregiverName() 
    {
        return caregiverName;
    }

    public void setCheckoutTime(Date checkoutTime) 
    {
        this.checkoutTime = checkoutTime;
    }

    public Date getCheckoutTime() 
    {
        return checkoutTime;
    }

    public void setCheckoutReason(String checkoutReason) 
    {
        this.checkoutReason = checkoutReason;
    }

    public String getCheckoutReason() 
    {
        return checkoutReason;
    }

    public void setApplicant(String applicant) 
    {
        this.applicant = applicant;
    }

    public String getApplicant() 
    {
        return applicant;
    }

    public void setApplicantId(String applicantId) 
    {
        this.applicantId = applicantId;
    }

    public String getApplicantId() 
    {
        return applicantId;
    }

    public void setApplicantDept(String applicantDept) 
    {
        this.applicantDept = applicantDept;
    }

    public String getApplicantDept() 
    {
        return applicantDept;
    }

    public void setApplyTime(Date applyTime) 
    {
        this.applyTime = applyTime;
    }

    public Date getApplyTime() 
    {
        return applyTime;
    }

    public void setProcessStatus(String processStatus) 
    {
        this.processStatus = processStatus;
    }

    public String getProcessStatus() 
    {
        return processStatus;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }

    public void setUpdatedAt(Date updatedAt) 
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt() 
    {
        return updatedAt;
    }

    public void setExtend1(String extend1) 
    {
        this.extend1 = extend1;
    }

    public String getExtend1() 
    {
        return extend1;
    }

    public void setExtend2(String extend2) 
    {
        this.extend2 = extend2;
    }

    public String getExtend2() 
    {
        return extend2;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("checkoutNo", getCheckoutNo())
            .append("title", getTitle())
            .append("elderId", getElderId())
            .append("businessId", getBusinessId())
            .append("name", getName())
            .append("idCardNo", getIdCardNo())
            .append("contact", getContact())
            .append("stayStart", getStayStart())
            .append("stayEnd", getStayEnd())
            .append("careLevel", getCareLevel())
            .append("bedNo", getBedNo())
            .append("contractUrl", getContractUrl())
            .append("contractNo", getContractNo())
            .append("consultant", getConsultant())
            .append("caregiverName", getCaregiverName())
            .append("checkoutTime", getCheckoutTime())
            .append("checkoutReason", getCheckoutReason())
            .append("applicant", getApplicant())
            .append("applicantId", getApplicantId())
            .append("applicantDept", getApplicantDept())
            .append("applyTime", getApplyTime())
            .append("processStatus", getProcessStatus())
            .append("status", getStatus())
            .append("createdAt", getCreatedAt())
            .append("updatedAt", getUpdatedAt())
            .append("remark", getRemark())
            .append("extend1", getExtend1())
            .append("extend2", getExtend2())
            .toString();
    }
}
